DigiOffice Gateway Web Services

<back to all web services

ProcessProjectRequestMessage

Requires Authentication
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Environment:
    title: Optional[str] = None
    code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Party:
    title: Optional[str] = None
    code: Optional[str] = None
    version: Optional[str] = None
    environment: Optional[Environment] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Header:
    message_i_d: Optional[str] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)
    sender: Optional[Party] = None
    recipient: Optional[Party] = None
    request_message_i_d: Optional[Object] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Reference:
    global_i_d: Optional[str] = None
    title: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    address_line1: Optional[str] = None
    address_line2: Optional[str] = None
    house_number: Optional[str] = None
    house_number_suffix: Optional[str] = None
    postal_code: Optional[str] = None
    city: Optional[str] = None
    country: Optional[Reference] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MailingAddress:
    po_box: Optional[str] = None
    postal_code: Optional[str] = None
    city: Optional[str] = None
    country: Optional[Reference] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Project:
    global_i_d: Optional[str] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None
    code: Optional[str] = None
    name: Optional[str] = None
    description1: Optional[str] = None
    description2: Optional[str] = None
    address: Optional[Address] = None
    mailing_address: Optional[MailingAddress] = None
    project_category_reference: Optional[Reference] = None
    project_type_reference: Optional[Reference] = None
    project_status_reference: Optional[Reference] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    completion_date: Optional[datetime.datetime] = None
    inactive: bool = False
    website: Optional[str] = None
    is_template_project: bool = False
    custom_fields: Optional[List[CustomField]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProjectResponseMessage:
    header: Optional[Header] = None
    project_reference: Optional[Reference] = None
    project: Optional[Project] = None
    housing_types: Optional[List[HousingType]] = None
    construction_blocks: Optional[List[ConstructionBlock]] = None
    construction_numbers: Optional[List[ConstructionNumber]] = None
    documents: Optional[List[Document]] = None
    purchase_contracts: Optional[List[PurchaseContract]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProjectRequestMessage:
    header: Optional[Header] = None
    project_reference: Optional[Reference] = None
    include_housing_types: bool = False
    include_construction_blocks: bool = False
    include_construction_numbers: bool = False
    include_documents: bool = False
    include_purchase_contracts: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProcessProjectRequestMessage:
    instance_id: Optional[str] = None
    project_request: Optional[ProjectRequestMessage] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomField:
    name: Optional[str] = None
    value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HousingType:
    global_i_d: Optional[str] = None
    project_reference: Optional[Reference] = None
    code: Optional[str] = None
    description: Optional[str] = None
    custom_fields: Optional[List[CustomField]] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConstructionBlock:
    global_i_d: Optional[str] = None
    project_reference: Optional[Reference] = None
    code: Optional[str] = None
    description: Optional[str] = None
    custom_fields: Optional[List[CustomField]] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConstructionNumber:
    global_i_d: Optional[str] = None
    project_reference: Optional[Reference] = None
    housing_type_reference: Optional[Reference] = None
    construction_block_reference: Optional[Reference] = None
    code: Optional[str] = None
    description: Optional[str] = None
    address: Optional[Address] = None
    rental_house: bool = False
    guarantee_certificate_number: Optional[str] = None
    inactive: bool = False
    custom_fields: Optional[List[CustomField]] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None
    viewing_date: Optional[datetime.datetime] = None
    viewing_date_specified: bool = False
    delivery_date: Optional[datetime.datetime] = None
    delivery_date_specified: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Document(ICustomProperties):
    id: Optional[str] = None
    root_document_i_d: Optional[str] = None
    registrationprofile_i_d: Optional[str] = None
    title: Optional[str] = None
    full_title: Optional[str] = None
    number: Optional[str] = None
    version: Optional[str] = None
    external_number: Optional[str] = None
    external_version: Optional[str] = None
    internal_number: Optional[str] = None
    internal_invoice_number: Optional[str] = None
    person_i_d: int = 0
    relation_i_d: int = 0
    relation_title: Optional[str] = None
    project_i_d: int = 0
    project_title: Optional[str] = None
    extension: Optional[str] = None
    date: Optional[datetime.datetime] = None
    comments_count: int = 0
    has_comments: bool = False
    has_preview: bool = False
    extra_field: Optional[str] = None
    is_favorite: bool = False
    documentcategory_text: Optional[str] = None
    file_size: Optional[int] = None
    file_date: Optional[datetime.datetime] = None
    hash: Optional[str] = None
    hash_type: Optional[str] = None
    file_url: Optional[str] = None
    standard_document_url: Optional[str] = None
    is_corporate_identity: bool = False
    user_title: Optional[str] = None
    is_frozen: bool = False
    internal_company_i_d: int = 0
    direct_url: Optional[str] = None
    allow_digital_signing_only_on_primary_versions: bool = False
    is_primary_version: bool = False
    file_extension: Optional[str] = None
    custom_properties: Optional[Dict[str, Object]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Relation:
    global_i_d: Optional[str] = None
    name_line1: Optional[str] = None
    name_line2: Optional[str] = None
    address: Optional[Address] = None
    mailing_address: Optional[MailingAddress] = None
    telephone: Optional[str] = None
    mobile: Optional[str] = None
    email: Optional[str] = None
    iban: Optional[str] = None
    bank_account_number: Optional[str] = None
    website: Optional[str] = None
    inactive: bool = False
    custom_fields: Optional[List[CustomField]] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PurchaseContract:
    global_i_d: Optional[str] = None
    code: Optional[str] = None
    description: Optional[str] = None
    project_reference: Optional[Reference] = None
    product_code: Optional[str] = None
    relation: Optional[Relation] = None
    inactive: bool = False
    custom_fields: Optional[List[CustomField]] = None
    creation_date: Optional[datetime.datetime] = None
    created_by: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    modified_by: Optional[str] = None

Python ProcessProjectRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /xml/reply/ProcessProjectRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ProcessProjectRequestMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <InstanceId>00000000-0000-0000-0000-000000000000</InstanceId>
  <ProjectRequest>
    <Header>
      <MessageID>String</MessageID>
      <Recipient>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Recipient>
      <RequestMessageID />
      <Sender>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Sender>
      <Timestamp>0001-01-01T00:00:00</Timestamp>
    </Header>
    <IncludeConstructionBlocks>false</IncludeConstructionBlocks>
    <IncludeConstructionNumbers>false</IncludeConstructionNumbers>
    <IncludeDocuments>false</IncludeDocuments>
    <IncludeHousingTypes>false</IncludeHousingTypes>
    <IncludePurchaseContracts>false</IncludePurchaseContracts>
    <ProjectReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectReference>
  </ProjectRequest>
</ProcessProjectRequestMessage>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ProjectResponseMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <ConstructionBlocks>
    <ConstructionBlock>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
    </ConstructionBlock>
  </ConstructionBlocks>
  <ConstructionNumbers>
    <ConstructionNumber>
      <Address>
        <AddressLine1>String</AddressLine1>
        <AddressLine2>String</AddressLine2>
        <City>String</City>
        <Country>
          <GlobalID>String</GlobalID>
          <Title>String</Title>
        </Country>
        <HouseNumber>String</HouseNumber>
        <HouseNumberSuffix>String</HouseNumberSuffix>
        <PostalCode>String</PostalCode>
      </Address>
      <Code>String</Code>
      <ConstructionBlockReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionBlockReference>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <DeliveryDate>0001-01-01T00:00:00</DeliveryDate>
      <DeliveryDateSpecified>false</DeliveryDateSpecified>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <GuaranteeCertificateNumber>String</GuaranteeCertificateNumber>
      <HousingTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </HousingTypeReference>
      <Inactive>false</Inactive>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <RentalHouse>false</RentalHouse>
      <ViewingDate>0001-01-01T00:00:00</ViewingDate>
      <ViewingDateSpecified>false</ViewingDateSpecified>
    </ConstructionNumber>
  </ConstructionNumbers>
  <Documents>
    <Document>
      <Code>String</Code>
      <ConstructionBlockReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionBlockReference>
      <ConstructionNumberReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ConstructionNumberReference>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <DeletedDate>0001-01-01T00:00:00</DeletedDate>
      <DeletedDateSpecified>false</DeletedDateSpecified>
      <DocumentTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </DocumentTypeReference>
      <File>
        <Content>String</Content>
        <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
        <Name>String</Name>
        <Size>0</Size>
        <Type>String</Type>
      </File>
      <Floor>0</Floor>
      <FloorSpecified>false</FloorSpecified>
      <GlobalID>String</GlobalID>
      <HousingTypeReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </HousingTypeReference>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <NewestVersion>false</NewestVersion>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <RelationReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </RelationReference>
      <RootDocumentID>String</RootDocumentID>
      <Subject>String</Subject>
      <VersionNumber>String</VersionNumber>
    </Document>
  </Documents>
  <Header>
    <MessageID>String</MessageID>
    <Recipient>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Recipient>
    <RequestMessageID />
    <Sender>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Sender>
    <Timestamp>0001-01-01T00:00:00</Timestamp>
  </Header>
  <HousingTypes>
    <HousingType>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
    </HousingType>
  </HousingTypes>
  <Project>
    <Address>
      <AddressLine1>String</AddressLine1>
      <AddressLine2>String</AddressLine2>
      <City>String</City>
      <Country>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </Country>
      <HouseNumber>String</HouseNumber>
      <HouseNumberSuffix>String</HouseNumberSuffix>
      <PostalCode>String</PostalCode>
    </Address>
    <Code>String</Code>
    <CompletionDate>0001-01-01T00:00:00</CompletionDate>
    <CreatedBy>String</CreatedBy>
    <CreationDate>0001-01-01T00:00:00</CreationDate>
    <CustomFields>
      <CustomField>
        <Name>String</Name>
        <Value>String</Value>
      </CustomField>
    </CustomFields>
    <Description1>String</Description1>
    <Description2>String</Description2>
    <EndDate>0001-01-01T00:00:00</EndDate>
    <GlobalID>String</GlobalID>
    <Inactive>false</Inactive>
    <IsTemplateProject>false</IsTemplateProject>
    <MailingAddress>
      <City>String</City>
      <Country>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </Country>
      <POBox>String</POBox>
      <PostalCode>String</PostalCode>
    </MailingAddress>
    <ModifiedBy>String</ModifiedBy>
    <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
    <Name>String</Name>
    <ProjectCategoryReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectCategoryReference>
    <ProjectStatusReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectStatusReference>
    <ProjectTypeReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectTypeReference>
    <StartDate>0001-01-01T00:00:00</StartDate>
    <Website>String</Website>
  </Project>
  <ProjectReference>
    <GlobalID>String</GlobalID>
    <Title>String</Title>
  </ProjectReference>
  <PurchaseContracts>
    <PurchaseContract>
      <Code>String</Code>
      <CreatedBy>String</CreatedBy>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <CustomFields>
        <CustomField>
          <Name>String</Name>
          <Value>String</Value>
        </CustomField>
      </CustomFields>
      <Description>String</Description>
      <GlobalID>String</GlobalID>
      <Inactive>false</Inactive>
      <ModifiedBy>String</ModifiedBy>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <ProductCode>String</ProductCode>
      <ProjectReference>
        <GlobalID>String</GlobalID>
        <Title>String</Title>
      </ProjectReference>
      <Relation>
        <Address>
          <AddressLine1>String</AddressLine1>
          <AddressLine2>String</AddressLine2>
          <City>String</City>
          <Country>
            <GlobalID>String</GlobalID>
            <Title>String</Title>
          </Country>
          <HouseNumber>String</HouseNumber>
          <HouseNumberSuffix>String</HouseNumberSuffix>
          <PostalCode>String</PostalCode>
        </Address>
        <BankAccountNumber>String</BankAccountNumber>
        <CreatedBy>String</CreatedBy>
        <CreationDate>0001-01-01T00:00:00</CreationDate>
        <CustomFields>
          <CustomField>
            <Name>String</Name>
            <Value>String</Value>
          </CustomField>
        </CustomFields>
        <Email>String</Email>
        <GlobalID>String</GlobalID>
        <IBAN>String</IBAN>
        <Inactive>false</Inactive>
        <MailingAddress>
          <City>String</City>
          <Country>
            <GlobalID>String</GlobalID>
            <Title>String</Title>
          </Country>
          <POBox>String</POBox>
          <PostalCode>String</PostalCode>
        </MailingAddress>
        <Mobile>String</Mobile>
        <ModifiedBy>String</ModifiedBy>
        <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
        <NameLine1>String</NameLine1>
        <NameLine2>String</NameLine2>
        <Telephone>String</Telephone>
        <Website>String</Website>
      </Relation>
    </PurchaseContract>
  </PurchaseContracts>
</ProjectResponseMessage>